package com.xingkeduo.business.user.controller;

import com.xingkeduo.business.transformation.json.JobseekerAssessRateJTO;
import com.xingkeduo.business.transformation.json.JobseekerJTO;
import com.xingkeduo.business.transformation.json.JobseekerJobJTO;
import com.xingkeduo.business.transformation.json.JobseekerSocialJTO;
import com.xingkeduo.business.user.domain.ManageInfoDomain;
import com.xingkeduo.pojo.query.JobseekerAssessRateQO;
import com.xingkeduo.pojo.query.JobseekerJobQO;
import com.xingkeduo.pojo.query.JobseekerQO;
import com.xingkeduo.pojo.query.JobseekerSocialQO;
import com.xingkeduo.pojo.table.JobseekerTO;
import com.xingkeduo.util.pojo.base.BaseController;
import com.xingkeduo.util.pojo.domain.Page;
import com.xingkeduo.util.pojo.domain.PageJTO;
import com.xingkeduo.util.tool.ReturnUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 求职者
 *
 * @author 高杰
 * @time 2018年12月24日 下午5:40:05
 * @description
 */
//@CrossOrigin
@RestController
@RequestMapping("/cms/jobseeker/fail")
public class CmsJobseekerFailListController extends BaseController {
    @Autowired
    private ManageInfoDomain manageInfoDomain;

    /**
     * 求职者列表接口
     *
     * @param urlParam
     * @return
     * @author 高杰
     * @time 2018年12月29日 上午11:52:26
     */
    @GetMapping(value = "/{urlParam:.+}")
    public String doGet(@PathVariable String urlParam, int page, int limit) {
        returnUtil = new ReturnUtil();
        try {
            JobseekerQO jobseekerQuery = JobseekerJTO.createQueryForAssess(urlParam);
            JobseekerJobQO jobseekerJobQuery = JobseekerJobJTO.createQueryForList(urlParam);
            JobseekerSocialQO jobseekerSocialQuery = JobseekerSocialJTO.createQueryForList(urlParam);
            JobseekerAssessRateQO jobseekerAssessRateQO = JobseekerAssessRateJTO.createQueryForTypes(urlParam);
            Page<JobseekerTO> pageDO = new Page<JobseekerTO>(page, limit);

            return returnUtil.getSuccess(PageJTO.toJson(pageDO, JobseekerJTO.toJson(manageInfoDomain
                    .getJobseekersWithoutRateFail(jobseekerQuery, jobseekerJobQuery, jobseekerSocialQuery, jobseekerAssessRateQO, pageDO))));
        } catch (Throwable t) {
            return dealException(t, returnUtil);
        }
    }

    /**
     * 获取招聘渠道   pantong  2019年5月14日下午8:05:00
     *
     * @return String
     */
    @GetMapping(value = "/listRecruitSource")
    public String doGet() {
        returnUtil = new ReturnUtil();
        try {
            return returnUtil.getSuccess(JobseekerJTO.toJsonOfRecruitSourceEnum());
        } catch (Throwable t) {
            return dealException(t, returnUtil);
        }
    }

}
